home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 9 / QRZ Ham Radio Callsign Database - Volume 9.iso / mac / unix / src / mknlist.c < prev    next >
C/C++ Source or Header  |  1996-06-24  |  1KB  |  79 lines

  1.  
  2.  
  3.  
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include "cb.h"
  7.  
  8.  
  9. main(argc,argv)
  10. int argc;
  11. char *argv[];
  12. {
  13.     FILE *fp;
  14.     FILE *op;
  15.     long pos;
  16.     char    str[1024];
  17.     char    buf[40];
  18.     char    *f[20];
  19.     char    *p;
  20.     struct    nind indx;
  21.     int    recs;
  22.     int n, maxn;
  23.  
  24.     if (!argv[1])
  25.     {
  26.         printf("Usage: %s dbase_name\n",argv[0]);
  27.         exit(1);
  28.     }
  29.     if ((fp=fopen(argv[1],"r")) == NULL)
  30.     {
  31.         printf("Error opening file %s.\n",argv[1]);
  32.         exit(1);
  33.     }
  34.     if ((op=fopen("nlist.ndx","w")) == NULL)
  35.     {
  36.         printf("Error opening nlist.ndx\n");
  37.         exit(1);
  38.     }
  39.     recs = 0;
  40.     maxn = 0;
  41.     printf("\n");
  42.     while (!feof(fp))
  43.     {
  44.         memset(str,0,sizeof(str));
  45.         memset(&indx,0,sizeof(struct nind));
  46.         indx.pos = ftell(fp);
  47.         fgets(str,sizeof(str),fp);
  48.         if (!strlen(str))
  49.             break;
  50.  
  51.         if (strlen(str) < 20)  /* skip the cross references */
  52.             continue;
  53.  
  54.         field_it(str,f);
  55.         sprintf(buf,"%s %s %s",f[LNAME],f[FNAME],f[MI]);
  56.         n = strlen(buf);
  57.         if (n > sizeof(indx.name)-1)
  58.         {    
  59.         /*
  60.             printf("%s\n",buf);
  61.         */
  62.             maxn++;
  63.         }
  64.         buf[sizeof(indx.name)-1] = '\0';
  65.         strcpy(indx.name,buf);
  66.         fwrite(&indx,sizeof(indx),1,op);
  67.         recs++;
  68.         if (recs%10000 == 0)
  69.             printf("\n%d records written\n\n",recs);
  70.  
  71.     }
  72.     fclose(fp);
  73.     fclose(op);
  74.     printf("\nindex created - %d records written, %d trunciated\n",
  75.         recs,maxn);
  76.     exit(0);
  77. }
  78.  
  79.